AWK প্রোগ্রামিং ভাষায় Associative Arrays একটি গুরুত্বপূর্ণ বৈশিষ্ট্য যা ডেটা সংগ্রহ ও প্রক্রিয়াকরণকে আরও কার্যকরী এবং সহজ করে তোলে। সাধারণ অ্যারেগুলি সংখ্যাসূচক ইনডেক্স ব্যবহার করে, কিন্তু AWK এর Associative Arrays (অ্যাসোসিয়েটিভ অ্যারে) স্ট্রিং বা টেক্সট ইনডেক্স ব্যবহার করতে পারে, যা ডেটা ম্যাপিং বা কীগুলোর সাথে মান সংরক্ষণের জন্য বিশেষভাবে উপযোগী।
Associative Arrays এমন অ্যারে যা ইনডেক্স হিসেবে স্ট্রিং বা টেক্সট ব্যবহার করতে পারে। এর মাধ্যমে আপনি কীগুলোর সাথে মান সংরক্ষণ করতে পারেন এবং সেই কীগুলোর মাধ্যমে মান অ্যাক্সেস করতে পারেন।
array_name[key] = value
ধরা যাক, একটি ফাইল names.txt
আছে, যেখানে প্রতিটি লাইনে নাম রয়েছে। আমরা প্রতিটি নামের উপস্থিতি গণনা করতে চাই।
names.txt
এর উদাহরণ:
John
Emily
John
Mark
Sophia
Emily
AWK স্ক্রিপ্ট:
awk '{ count[$1]++ } END { for (name in count) print name, count[name] }' names.txt
বর্ণনা:
count
অ্যারেতে ইনডেক্স হিসেবে ব্যবহার করা হয়েছে।count[$1]++
প্রতিটি নামের সংখ্যা গণনা করে।END
ব্লকে লুপ ব্যবহার করে প্রতিটি নাম এবং তার সংখ্যা প্রিন্ট করা হয়।আউটপুট:
John 2
Emily 2
Mark 1
Sophia 1
AWK এ Associative Arrays ব্যবহার করে মান যোগ বা পরিবর্তন করা যায়।
awk 'BEGIN {
student_scores["John"] = 85
student_scores["Emily"] = 92
student_scores["Mark"] = 76
student_scores["Mark"] = 80 # মান পরিবর্তন করা
for (student in student_scores) {
print student ": " student_scores[student]
}
}'
আউটপুট:
John: 85
Emily: 92
Mark: 80
ধরা যাক, আমাদের কাছে একটি বিক্রয় রিপোর্ট sales.txt
ফাইল আছে যেখানে বিক্রেতার নাম এবং বিক্রয়ের সংখ্যা রয়েছে। আমরা চাই প্রতিটি বিক্রেতার মোট বিক্রয় যোগ করতে।
sales.txt
এর উদাহরণ:
John 10
Emily 5
John 7
Mark 3
Emily 9
AWK স্ক্রিপ্ট:
awk '{ sales[$1] += $2 } END { for (seller in sales) print seller, "Total sales:", sales[seller] }' sales.txt
বর্ণনা:
sales[$1] += $2
অ্যারেতে প্রথম কলামের নামকে ইনডেক্স হিসেবে ব্যবহার করে এবং দ্বিতীয় কলামের মান যোগ করে।END
ব্লকে প্রতিটি বিক্রেতার নাম এবং তার মোট বিক্রয় প্রিন্ট করা হয়।আউটপুট:
John Total sales: 17
Emily Total sales: 14
Mark Total sales: 3
AWK এ delete
কিওয়ার্ড ব্যবহার করে অ্যারেতে কোনো ইনডেক্স মুছে ফেলা যায়।
awk 'BEGIN {
scores["John"] = 90
scores["Emily"] = 95
delete scores["John"] # John এর মান মুছে ফেলা
for (name in scores) {
print name, scores[name]
}
}'
আউটপুট:
Emily 95
AWK এ Associative Arrays ব্যবহার করে কীগুলোর মাধ্যমে ডেটা সংরক্ষণ এবং অ্যাক্সেস করা সম্ভব, যা ডেটা বিশ্লেষণ এবং প্রক্রিয়াকরণের সময় অত্যন্ত কার্যকরী। এটি ডেটা গণনা, মান যোগ বা পরিবর্তন, এবং কীগুলোর ভিত্তিতে ডেটা প্রক্রিয়াকরণের কাজকে সহজ করে। Associative Arrays এর ব্যবহার AWK এর শক্তিশালী বৈশিষ্ট্যগুলোর মধ্যে একটি, যা জটিল ডেটা প্রক্রিয়াকরণের কাজকে আরও দ্রুত এবং সহজ করে তোলে।
common.read_more